#!/bin/bash -eu
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

LINE_SEP="-------------------------------------------------------------------"

################################################################################
################################################################################
## Make directory to store simulation output
################################################################################
################################################################################
if [ ! -d "out" ]; then
  mkdir -p out
fi

################################################################################
################################################################################
## Install test bench dependencies
################################################################################
################################################################################
install-cpp-deps

################################################################################
################################################################################
## Set build flags
################################################################################
################################################################################
echo "Setting compiler/linker flags..."
source set_hwf_isa.sh

################################################################################
################################################################################
## Build and execute the SW model of the circuit
################################################################################
################################################################################
echo $LINE_SEP
echo "Verilating/Compiling/Instrumenting/Simulating the DUT ..."
make clean
make \
  SEED=$SEED \
  TB_CXXFLAGS="$TB_CXXFLAGS" \
  TB_TYPE=$TB_TYPE \
  TB=$TB \
  sim
if [ -f trace.vcd ]; then
  cp trace.vcd out/trace.vcd
fi

################################################################################
################################################################################
## Done
################################################################################
################################################################################
echo -e "\e[1;32mSIMULATION SUCCESSFUL -- Done!\e[0m"
exit 0
